home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / PInterfaces / PCIKernel.p < prev    next >
Text File  |  1996-05-01  |  5KB  |  114 lines

  1. {
  2.      File:        PCIKernel.p
  3.  
  4.      Contains:    All definitions, prototypes, and constants for the PCI Family.
  5.  
  6.      Version:    Technology:    xxx put the technology version here xxx
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT PCIKernel;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __PCIKERNEL__}
  28. {$SETC __PCIKERNEL__ := 1}
  29.  
  30. {$I+}
  31. {$SETC PCIKernelIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __SYNCHRONIZATION__}
  38. {$I Synchronization.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __NAMEREGISTRY__}
  41. {$I NameRegistry.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __INTERRUPTS__}
  44. {$I Interrupts.p}
  45. {$ENDC}
  46. {$IFC UNDEFINED __IOITERATOR__}
  47. {$I IOIterator.p}
  48. {$ENDC}
  49.  
  50. {$PUSH}
  51. {$ALIGN MAC68K}
  52. {$LibExport+}
  53.  
  54. {$IFC FOR_SYSTEM8_PREEMPTIVE }
  55.  
  56. TYPE
  57.     PCIConfigAddress                    = LogicalAddress;
  58.     PCIIOAddress                        = LogicalAddress;
  59. FUNCTION PCIConfigReadByte(VAR entry: RegEntryRef; configAddr: PCIConfigAddress; VAR value: UInt8): OSStatus; C;
  60. FUNCTION PCIConfigReadWord(VAR entry: RegEntryRef; configAddr: PCIConfigAddress; VAR value: UInt16): OSStatus; C;
  61. FUNCTION PCIConfigReadLong(VAR entry: RegEntryRef; configAddr: PCIConfigAddress; VAR value: UInt32): OSStatus; C;
  62. FUNCTION PCIConfigWriteByte(VAR entry: RegEntryRef; configAddr: PCIConfigAddress; value: ByteParameter): OSStatus; C;
  63. FUNCTION PCIConfigWriteWord(VAR entry: RegEntryRef; configAddr: PCIConfigAddress; value: UInt16): OSStatus; C;
  64. FUNCTION PCIConfigWriteLong(VAR entry: RegEntryRef; configAddr: PCIConfigAddress; value: UInt32): OSStatus; C;
  65. FUNCTION PCIIOReadByte(VAR entry: RegEntryRef; ioAddr: PCIIOAddress; VAR value: UInt8): OSStatus; C;
  66. FUNCTION PCIIOReadWord(VAR entry: RegEntryRef; ioAddr: PCIIOAddress; VAR value: UInt16): OSStatus; C;
  67. FUNCTION PCIIOReadLong(VAR entry: RegEntryRef; ioAddr: PCIIOAddress; VAR value: UInt32): OSStatus; C;
  68. FUNCTION PCIIOWriteByte(VAR entry: RegEntryRef; ioAddr: PCIIOAddress; value: ByteParameter): OSStatus; C;
  69. FUNCTION PCIIOWriteWord(VAR entry: RegEntryRef; ioAddr: PCIIOAddress; value: UInt16): OSStatus; C;
  70. FUNCTION PCIIOWriteLong(VAR entry: RegEntryRef; ioAddr: PCIIOAddress; value: UInt32): OSStatus; C;
  71. FUNCTION PCIIntAckReadByte(VAR entry: RegEntryRef; VAR value: UInt8): OSStatus; C;
  72. FUNCTION PCIIntAckReadWord(VAR entry: RegEntryRef; VAR value: UInt16): OSStatus; C;
  73. FUNCTION PCIIntAckReadLong(VAR entry: RegEntryRef; VAR value: UInt32): OSStatus; C;
  74. FUNCTION PCISpecialCycleWriteLong(VAR entry: RegEntryRef; value: UInt32): OSStatus; C;
  75. FUNCTION PCISpecialCycleBroadcastLong(value: UInt32): OSStatus; C;
  76. {  IOIteration model definitions for the PCI Family }
  77.  
  78. TYPE
  79.     PCIIOIteratorDataPtr = ^PCIIOIteratorData;
  80.     PCIIOIteratorData = RECORD
  81.         IOCI:                    IOCommonInfo;
  82.         Name:                    PACKED ARRAY [0..31] OF CHAR;
  83.         Domain:                    UInt32;
  84.         BusNumber:                UInt32;
  85.         ConfigAddress:            UInt32;
  86.     END;
  87.  
  88. {  get all pci device found }
  89. FUNCTION PCIGetDeviceData(requestItemCount: ItemCount; VAR totalItemCountPtr: ItemCount; VAR List: PCIIOIteratorData): OSStatus; C;
  90. {  get all pci device by a certain name }
  91. FUNCTION PCINameGetDeviceData(Name: CStringPtr; reqeustItemCount: ItemCount; VAR totalItemCountPtr: ItemCount; VAR List: PCIIOIteratorData): OSStatus; C;
  92. {  get all pci device belonging to a certain domain }
  93. FUNCTION PCIDomainGetDeviceData(Domain: UInt32; reqeustItemCount: ItemCount; VAR totalItemCountPtr: ItemCount; VAR List: PCIIOIteratorData): OSStatus; C;
  94. {  get all pci devices belonging to a certain bus }
  95. FUNCTION PCIBusNumberGetDeviceData(BusNumber: UInt32; reqeustItemCount: ItemCount; VAR totalItemCountPtr: ItemCount; VAR List: PCIIOIteratorData): OSStatus; C;
  96. {  get a pci devices by its config address }
  97. FUNCTION PCIConfigAddressGetDeviceData(ConfigAddress: PCIConfigAddress; reqeustItemCount: ItemCount; VAR totalItemCountPtr: ItemCount; VAR List: PCIIOIteratorData): OSStatus; C;
  98. {  bridge interrupt handler call }
  99. FUNCTION PCILookupParentMember(theSet: InterruptSetID; VAR theParentSetMember: InterruptSetMember): OSStatus; C;
  100. {  plugin access to interrupt disable calls }
  101. FUNCTION PCIDisableInterrupts: InterruptState; C;
  102. PROCEDURE PCIRestoreInterrupts(theState: InterruptState); C;
  103. {$ENDC}
  104. {$ALIGN RESET}
  105. {$POP}
  106.  
  107. {$SETC UsingIncludes := PCIKernelIncludes}
  108.  
  109. {$ENDC} {__PCIKERNEL__}
  110.  
  111. {$IFC NOT UsingIncludes}
  112.  END.
  113. {$ENDC}
  114.